home *** CD-ROM | disk | FTP | other *** search
- TITLE WDASM Example Program
- .286
- .MODEL SMALL
-
- INCLUDE HELLO.INC
-
- EXTRN DefWindowProc:FAR
- EXTRN GetMessage:FAR
- EXTRN TranslateMessage:FAR
- EXTRN FatalExit:FAR
- EXTRN DispatchMessage:FAR
- EXTRN GetVersion:FAR
- EXTRN GetDosEnvironment:FAR
- EXTRN LocalAlloc:FAR
- EXTRN LocalRealloc:FAR
- EXTRN LocalFree:FAR
- EXTRN FatalAppExit:FAR
- EXTRN LocalSize:FAR
- EXTRN UpdateWindow:FAR
- EXTRN GlobalRealloc:FAR
- EXTRN GlobalSize:FAR
- EXTRN InitApp:FAR
- EXTRN PostQuitMessage:FAR
- EXTRN LockSegment:FAR
- EXTRN UnlockSegment:FAR
- EXTRN WaitEvent:FAR
- EXTRN GetClientRect:FAR
- EXTRN GetModuleFileName:FAR
- EXTRN BeginPaint:FAR
- EXTRN EndPaint:FAR
- EXTRN CreateWindow:FAR
- EXTRN ShowWindow:FAR
- EXTRN LoadCursor:FAR
- EXTRN LoadIcon:FAR
- EXTRN RegisterClass:FAR
- EXTRN InitTask:FAR
- EXTRN GetStockObject:FAR
- EXTRN DrawText:FAR
- EXTRN Dos3Call:FAR
- EXTRN __winflags:FAR
-
- .CODE
-
- Procedure0000 PROC NEAR
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- Procedure0000 ENDP
-
- Procedure0010 PROC NEAR
- PUSH BP
- MOV BP, SP
- MOV AX, 002EH
- CALL NEAR PTR Procedure042A
- CMP WORD PTR [BP+10], 0
- JZ L0022H
- JMP NEAR PTR L008AH
- L0022H: MOV WORD PTR [BP-46], 0003H
- MOV WORD PTR [BP-44], LROFFSET WNDPROC
- MOV WORD PTR [BP-42], SEG WNDPROC
- MOV WORD PTR [BP-40], 0000H
- MOV WORD PTR [BP-38], 0000H
- MOV AX, WORD PTR [BP+12]
- MOV WORD PTR [BP-36], AX
- PUSH 0
- PUSH 0
- PUSH 7F00H
- CALL FAR PTR LoadIcon
- MOV WORD PTR [BP-34], AX
- PUSH 0
- PUSH 0
- PUSH 7F00H
- CALL FAR PTR LoadCursor
- MOV WORD PTR [BP-32], AX
- PUSH 0
- CALL FAR PTR GetStockObject
- MOV WORD PTR [BP-30], AX
- MOV WORD PTR [BP-28], 0000H
- MOV WORD PTR [BP-26], 0000H
- MOV AX, 0010H
- MOV DX, DS
- MOV WORD PTR [BP-24], AX
- MOV WORD PTR [BP-22], DX
- LEA AX, WORD PTR [BP-46]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR RegisterClass
- L008AH: MOV AX, 0010H
- MOV DX, DS
- PUSH DX
- PUSH AX
- MOV AX, 00C2H
- MOV DX, DS
- PUSH DX
- PUSH AX
- PUSH 00CFH
- PUSH 0
- PUSH 8000H
- PUSH 8000H
- PUSH 8000H
- PUSH 8000H
- PUSH 0
- PUSH 0
- PUSH WORD PTR [BP+12]
- PUSH 0
- PUSH 0
- CALL FAR PTR CreateWindow
- MOV WORD PTR [BP-2], AX
- PUSH AX
- PUSH WORD PTR [BP+4]
- CALL FAR PTR ShowWindow
- PUSH WORD PTR [BP-2]
- CALL FAR PTR UpdateWindow
- L00CDH: LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- PUSH 0
- PUSH 0
- PUSH 0
- CALL FAR PTR GetMessage
- AND AX, AX
- JZ L00FEH
- LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR TranslateMessage
- LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR DispatchMessage
- JMP SHORT L00CDH
- NOP
- L00FEH: MOV AX, WORD PTR [BP-16]
- LEAVE
- RET 000AH
- Procedure0010 ENDP
-
-
- Procedure0105 PROC NEAR
- NOP
- Procedure0105 ENDP
-
- WNDPROC PROC FAR PUBLIC
- PUSH DS
- POP AX
- NOP
- INC BP
- PUSH BP
- MOV BP, SP
- PUSH DS
- MOV DS, AX
- MOV AX, 002CH
- CALL NEAR PTR Procedure042A
- PUSH SI
- PUSH DI
- MOV SI, WORD PTR [BP+14]
- MOV AX, WORD PTR [BP+12]
- JMP NEAR PTR L017AH
- NOP
- L0122H: PUSH SI
- LEA AX, WORD PTR [BP-36]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR BeginPaint
- MOV DI, AX
- PUSH SI
- LEA AX, WORD PTR [BP-44]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR GetClientRect
- PUSH DI
- MOV AX, 00DFH
- MOV DX, DS
- PUSH DX
- PUSH AX
- PUSH -1
- LEA AX, WORD PTR [BP-44]
- MOV DX, SS
- PUSH DX
- PUSH AX
- PUSH 37
- CALL FAR PTR DrawText
- PUSH SI
- LEA AX, WORD PTR [BP-36]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR EndPaint
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L019FH
- NOP
- L016AH: PUSH 0
- CALL FAR PTR PostQuitMessage
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L019FH
- NOP
- JMP SHORT L0187H
- L017AH: CMP AX, 0002H
- JZ L016AH
- CMP AX, 000FH
- JNZ L0187H
- JMP NEAR PTR L0122H
- L0187H: PUSH SI
- PUSH WORD PTR [BP+12]
- PUSH WORD PTR [BP+10]
- PUSH WORD PTR [BP+8]
- PUSH WORD PTR [BP+6]
- CALL FAR PTR DefWindowProc
- JMP SHORT L019FH
- NOP
- MOV WORD PTR [BP+14], SI
- L019FH: POP DI
- POP SI
- SUB BP, 2
- MOV SP, BP
- POP DS
- POP BP
- DEC BP
- RETF 000AH
- WNDPROC ENDP
-
-
- Procedure01AC PROC NEAR
- L01ACH DW LROFFSET __winflags
- L01AEH: MOV AL, -1
- PUSH AX
- CALL NEAR PTR Procedure034E
- L01B4H:: XOR BP, BP
- PUSH BP
- CALL FAR PTR InitTask
- OR AX, AX
- JZ L01AEH
- MOV WORD PTR D0064H, ES
- ADD CX, 0100H
- JB L01AEH
- MOV WORD PTR D002EH, CX
- MOV WORD PTR D0030H, SI
- MOV WORD PTR D0032H, DI
- MOV WORD PTR D0034H, BX
- MOV WORD PTR D0036H, ES
- MOV WORD PTR D0038H, DX
- CALL FAR PTR GetVersion
- MOV WORD PTR D0066H, AX
- MOV AH, 48
- TEST WORD PTR CS:L01ACH, 0001H
- JZ L01FCH
- CALL FAR PTR Dos3Call
- JMP SHORT L01FEH
- L01FCH: INT 0021H
- L01FEH: MOV WORD PTR D0068H, AX
- TEST WORD PTR CS:L01ACH, 0001H
- JNZ L020FH
- MOV AL, 0
- MOV BYTE PTR D006BH, AL
- L020FH: XOR AX, AX
- PUSH AX
- CALL FAR PTR WaitEvent
- PUSH WORD PTR D0032H
- CALL FAR PTR InitApp
- OR AX, AX
- JZ L01AEH
- CALL NEAR PTR Procedure0268
- CALL NEAR PTR Procedure047E
- CALL NEAR PTR Procedure05FC
- CALL NEAR PTR Procedure085C
- PUSH WORD PTR D00A0H
- PUSH WORD PTR D009EH
- PUSH WORD PTR D009CH
- CALL NEAR PTR Procedure024C
- ADD SP, 6
- PUSH AX
- CALL NEAR PTR Procedure0347
- MOV AX, 0015H
- JMP NEAR PTR L0683H
- Procedure01AC ENDP
-
- Procedure024C PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR D0032H
- PUSH WORD PTR D0030H
- PUSH WORD PTR D0036H
- PUSH WORD PTR D0034H
- PUSH WORD PTR D0038H
- CALL NEAR PTR Procedure0010
- POP BP
- RET
- Procedure024C ENDP
-
-
- Procedure0268 PROC NEAR
- MOV AX, 3500H
- TEST WORD PTR CS:L01ACH, 0001H
- JZ L027BH
- CALL FAR PTR Dos3Call
- JMP SHORT L027DH
- L027BH: INT 0021H
- L027DH: MOV WORD PTR D0050H, BX
- MOV WORD PTR D0052H, ES
- PUSH CS
- POP DS
- MOV AX, 2500H
- MOV DX, 067EH
- TEST WORD PTR CS:L01ACH, 0001H
- JZ L029DH
- CALL FAR PTR Dos3Call
- JMP SHORT L029FH
- L029DH: INT 0021H
- L029FH: PUSH SS
- POP DS
- MOV CX, WORD PTR D00B8H
- JCXZ L02D0H
- MOV ES, WORD PTR D0064H
- MOV SI, WORD PTR ES:D002CH
- MOV AX, WORD PTR D00BAH
- MOV DX, WORD PTR D00BCH
- XOR BX, BX
- CALL DWORD PTR D00B6H
- JAE L02C2H
- JMP NEAR PTR L0424H
- L02C2H: MOV AX, WORD PTR D00BEH
- MOV DX, WORD PTR D00C0H
- MOV BX, 0003H
- CALL DWORD PTR D00B6H
- L02D0H: MOV ES, WORD PTR D0064H
- MOV CX, WORD PTR ES:D002CH
- JCXZ L0319H
- MOV ES, CX
- XOR DI, DI
- L02DFH: CMP BYTE PTR ES:[DI], 0
- JZ L0319H
- MOV CX, 000DH
- MOV SI, 0042H
- REPE CMPSB
- JZ L02FAH
- MOV CX, 7FFFH
- XOR AX, AX
- REPNE SCASB
- JNZ L0319H
- JMP SHORT L02DFH
- L02FAH: PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV SI, DI
- MOV DI, 0074H
- MOV CL, 4
- L0305H: LODSB
- SUB AL, 65
- JB L0317H
- SHL AL, CL
- XCHG DX, AX
- LODSB
- SUB AL, 65
- JB L0317H
- OR AL, DL
- STOSB
- JMP SHORT L0305H
- L0317H: PUSH SS
- POP DS
- L0319H: MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- RET
- Procedure0268 ENDP
-
-
- Procedure0347 PROC NEAR
- PUSH BP
- MOV BP, SP
- XOR CX, CX
- JMP SHORT L0368H
- Procedure0347 ENDP
-
- Procedure034E PROC NEAR
- PUSH BP
- MOV BP, SP
- MOV CX, 0001H
- JMP SHORT L0368H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0100H
- JMP SHORT L0368H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0101H
- L0368H:: MOV BYTE PTR D00A9H, CH
- PUSH CX
- OR CL, CL
- JNZ L038DH
- MOV SI, 024CH
- MOV DI, 024CH
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, WORD PTR [BP+4]
- PUSH SI
- CALL NEAR PTR Procedure085C
- ADD SP, 2
- L038DH: MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- CALL NEAR PTR Procedure03C2
- POP AX
- OR AH, AH
- JNZ L03BEH
- MOV AX, WORD PTR [BP+4]
- MOV AH, 76
- TEST WORD PTR CS:L01ACH, 0001H
- JZ L03BCH
- CALL FAR PTR Dos3Call
- JMP SHORT L03BEH
- L03BCH: INT 0021H
- L03BEH: POP DI
- POP SI
- POP BP
- RET
- Procedure034E ENDP
-
-
- Procedure03C2 PROC NEAR
- MOV CX, WORD PTR D00B8H
- JCXZ L03CFH
- MOV BX, 0002H
- CALL DWORD PTR D00B6H
- L03CFH: PUSH DS
- LDS DX, DWORD PTR D0050H
- MOV AX, 2500H
- TEST WORD PTR CS:L01ACH, 0001H
- JZ L03E7H
- CALL FAR PTR Dos3Call
- JMP SHORT L03E9H
- L03E7H: INT 0021H
- L03E9H: POP DS
- RET
- Procedure03C2 ENDP
-
-
- Procedure03EB PROC NEAR
- L03EBH: CMP SI, DI
- JAE L03F9H
- DEC DI
- DEC DI
- MOV CX, WORD PTR [DI]
- JCXZ L03EBH
- CALL CX
- JMP SHORT L03EBH
- L03F9H: RET
- Procedure03EB ENDP
-
-
- Procedure03FA PROC NEAR
- L03FAH: CMP SI, DI
- JAE L040CH
- SUB DI, 4
- MOV AX, WORD PTR [DI]
- OR AX, WORD PTR [DI+2]
- JZ L03FAH
- CALL DWORD PTR [DI]
- JMP SHORT L03FAH
- L040CH: RET
- Procedure03FA ENDP
-
-
- Procedure040D PROC NEAR
- L040DH DB 0000H
- Procedure040D ENDP
-
- Procedure040E PROC NEAR
- PUSH BP
- MOV BP, SP
- MOV AX, 00FCH
- PUSH AX
- CALL NEAR PTR Procedure06ED
- MOV AX, 00FFH
- PUSH AX
- CALL NEAR PTR Procedure06ED
- MOV SP, BP
- POP BP
- RET
- Procedure040E ENDP
-
-
- Procedure0423 PROC NEAR
- L0423H DB 0000H
- L0424H:: MOV AX, 0002H
- JMP NEAR PTR L0683H
- Procedure0423 ENDP
-
- Procedure042A PROC NEAR
- POP BX
- INC AX
- AND AL, -2
- SUB AX, SP
- JAE L0477H
- NEG AX
- CMP WORD PTR SS:D000AH, AX
- JA L0477H
- CMP WORD PTR SS:D000CH, AX
- JBE L0446H
- MOV WORD PTR D000CH, AX
- L0446H: MOV SP, AX
- JMP BX
- POP BX
- POP DX
- INC AX
- AND AL, -2
- SUB AX, SP
- JAE L046CH
- NEG AX
- CMP WORD PTR SS:D000AH, AX
- JA L046CH
- CMP WORD PTR SS:D000CH, AX
- JBE L0467H
- MOV WORD PTR D000CH, AX
- L0467H: MOV SP, AX
- PUSH DX
- PUSH BX
- RETF
- Procedure042A ENDP
-
-
- Procedure046C PROC NEAR
- L046CH:: MOV DX, WORD PTR SS:D00ACH
- INC DX
- JZ L0477H
- JMP WORD PTR D00ACH
- L0477H:: MOV AX, 0000H
- JMP NEAR PTR L0683H
- L047DH DB 0000H
- Procedure046C ENDP
-
- Procedure047E PROC NEAR
- POP WORD PTR D00AEH
- MOV AX, 0104H
- MOV CX, 0008H
- CALL NEAR PTR Procedure071E
- MOV WORD PTR D00A4H, DX
- MOV WORD PTR D00A2H, AX
- PUSH DX
- PUSH AX
- PUSH WORD PTR D0032H
- PUSH DX
- PUSH AX
- MOV AX, 0104H
- PUSH AX
- CALL FAR PTR GetModuleFileName
- POP BX
- POP ES
- ADD BX, AX
- MOV BYTE PTR ES:[BX], 0
- MOV DX, 0001H
- MOV DI, 0001H
- MOV SI, 0081H
- MOV DS, WORD PTR D0064H
- L04B8H: LODSB
- CMP AL, 32
- JZ L04B8H
- CMP AL, 9
- JZ L04B8H
- CMP AL, 13
- JZ L0534H
- OR AL, AL
- JZ L0534H
- INC DI
- L04CAH: DEC SI
- L04CBH: LODSB
- CMP AL, 32
- JZ L04B8H
- CMP AL, 9
- JZ L04B8H
- CMP AL, 13
- JZ L0534H
- OR AL, AL
- JZ L0534H
- CMP AL, 34
- JZ L0504H
- CMP AL, 92
- JZ L04E7H
- INC DX
- JMP SHORT L04CBH
- L04E7H: XOR CX, CX
- L04E9H: INC CX
- LODSB
- CMP AL, 92
- JZ L04E9H
- CMP AL, 34
- JZ L04F7H
- ADD DX, CX
- JMP SHORT L04CAH
- L04F7H: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L04CBH
- JMP SHORT L0504H
- L0503H: DEC SI
- L0504H: LODSB
- CMP AL, 13
- JZ L0534H
- OR AL, AL
- JZ L0534H
- CMP AL, 34
- JZ L04CBH
- CMP AL, 92
- JZ L0518H
- INC DX
- JMP SHORT L0504H
- L0518H: XOR CX, CX
- L051AH: INC CX
- LODSB
- CMP AL, 92
- JZ L051AH
- CMP AL, 34
- JZ L0528H
- ADD DX, CX
- JMP SHORT L0503H
- L0528H: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L0504H
- JMP SHORT L04CBH
- L0534H: PUSH SS
- POP DS
- MOV WORD PTR D009CH, DI
- ADD DX, DI
- INC DI
- SHL DI, 1
- ADD DX, DI
- INC DX
- AND DL, -2
- SUB SP, DX
- MOV AX, SP
- MOV WORD PTR D009EH, AX
- MOV BX, AX
- ADD DI, BX
- PUSH SS
- POP ES
- LDS SI, DWORD PTR D00A2H
- MOV WORD PTR SS:[BX], SI
- INC BX
- INC BX
- MOV DS, WORD PTR SS:D0064H
- MOV SI, 0081H
- JMP SHORT L0568H
- L0565H: XOR AX, AX
- STOSB
- L0568H: LODSB
- CMP AL, 32
- JZ L0568H
- CMP AL, 9
- JZ L0568H
- CMP AL, 13
- JZ L05F1H
- OR AL, AL
- JZ L05F1H
- MOV WORD PTR SS:[BX], DI
- INC BX
- INC BX
- L057EH: DEC SI
- L057FH: LODSB
- CMP AL, 32
- JZ L0565H
- CMP AL, 9
- JZ L0565H
- CMP AL, 13
- JZ L05EEH
- OR AL, AL
- JZ L05EEH
- CMP AL, 34
- JZ L05BBH
- CMP AL, 92
- JZ L059BH
- STOSB
- JMP SHORT L057FH
- L059BH: XOR CX, CX
- L059DH: INC CX
- LODSB
- CMP AL, 92
- JZ L059DH
- CMP AL, 34
- JZ L05ADH
- MOV AL, 92
- REP STOSB
- JMP SHORT L057EH
- L05ADH: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L05BBH
- MOV AL, 34
- STOSB
- JMP SHORT L057FH
- L05BAH: DEC SI
- L05BBH: LODSB
- CMP AL, 13
- JZ L05EEH
- OR AL, AL
- JZ L05EEH
- CMP AL, 34
- JZ L057FH
- CMP AL, 92
- JZ L05CFH
- STOSB
- JMP SHORT L05BBH
- L05CFH: XOR CX, CX
- L05D1H: INC CX
- LODSB
- CMP AL, 92
- JZ L05D1H
- CMP AL, 34
- JZ L05E1H
- MOV AL, 92
- REP STOSB
- JMP SHORT L05BAH
- L05E1H: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L057FH
- MOV AL, 34
- STOSB
- JMP SHORT L05BBH
- L05EEH: XOR AX, AX
- STOSB
- L05F1H: PUSH SS
- POP DS
- MOV WORD PTR [BX], 0000H
- JMP WORD PTR D00AEH
- L05FBH DB 0000H
- Procedure047E ENDP
-
- Procedure05FC PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH DS
- CALL FAR PTR GetDosEnvironment
- OR AX, AX
- JZ L060BH
- MOV DX, AX
- L060BH: MOV BX, DX
- MOV ES, DX
- XOR AX, AX
- XOR SI, SI
- XOR DI, DI
- MOV CX, 0FFFFH
- OR BX, BX
- JZ L062AH
- CMP BYTE PTR ES:D0000H, 0
- JZ L062AH
- L0624H: REPNE SCASB
- INC SI
- SCASB
- JNZ L0624H
- L062AH: MOV AX, DI
- INC AX
- AND AL, -2
- INC SI
- MOV DI, SI
- SHL SI, 1
- MOV CX, 0009H
- CALL NEAR PTR Procedure071E
- PUSH AX
- MOV AX, SI
- CALL NEAR PTR Procedure071E
- MOV WORD PTR D00A0H, AX
- PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV CX, DI
- MOV BX, AX
- XOR SI, SI
- POP DI
- DEC CX
- JCXZ L0677H
- L0651H: MOV AX, WORD PTR [SI]
- CMP AX, WORD PTR SS:D0042H
- JNZ L066AH
- PUSH CX
- PUSH SI
- PUSH DI
- MOV DI, 0042H
- MOV CX, 0006H
- REPE CMPSW
- POP DI
- POP SI
- POP CX
- JZ L066FH
- L066AH: MOV WORD PTR ES:[BX], DI
- INC BX
- INC BX
- L066FH: LODSB
- STOSB
- OR AL, AL
- JNZ L066FH
- LOOP L0651H
- L0677H: MOV WORD PTR ES:[BX], CX
- POP DS
- POP BP
- RET
- Procedure05FC ENDP
-
-
- Procedure067D PROC NEAR
- L067DH DB 0000H
- PUSH SS
- POP DS
- MOV AX, 0003H
- L0683H:: PUSH AX
- PUSH AX
- CALL NEAR PTR Procedure040E
- CALL NEAR PTR Procedure06ED
- CALL NEAR PTR Procedure06C2
- XOR BX, BX
- OR AX, AX
- JZ L06B1H
- MOV DI, AX
- MOV AX, 0009H
- CMP BYTE PTR [DI], 77
- JNZ L06A1H
- MOV AX, 000FH
- L06A1H: ADD DI, AX
- PUSH DI
- PUSH DS
- POP ES
- MOV AL, 13
- MOV CX, 0022H
- REPNE SCASB
- MOV BYTE PTR [DI-1], BL
- POP AX
- L06B1H: PUSH BX
- PUSH DS
- PUSH AX
- CALL FAR PTR FatalAppExit
- MOV AX, 00FFH
- PUSH AX
- CALL FAR PTR FatalExit
- Procedure067D ENDP
-
- Procedure06C2 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- PUSH DS
- POP ES
- MOV DX, WORD PTR [BP+4]
- MOV SI, 0102H
- L06CFH: LODSW
- CMP AX, DX
- JZ L06E4H
- INC AX
- XCHG SI, AX
- JZ L06E4H
- XCHG DI, AX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- MOV SI, DI
- JMP SHORT L06CFH
- L06E4H: XCHG SI, AX
- POP DI
- POP SI
- MOV SP, BP
- POP BP
- RET 0002H
- Procedure06C2 ENDP
-
-
- Procedure06ED PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH DI
- CMP WORD PTR D00B2H, 0
- JZ L0716H
- PUSH WORD PTR [BP+4]
- CALL NEAR PTR Procedure06C2
- OR AX, AX
- JZ L0716H
- XCHG DX, AX
- MOV DI, DX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- NOT CX
- DEC CX
- MOV BX, WORD PTR D006EH
- CALL NEAR PTR Procedure0861
- L0716H: POP DI
- MOV SP, BP
- POP BP
- RET 0002H
- Procedure06ED ENDP
-
-
- Procedure071D PROC NEAR
- L071DH DB 0000H
- Procedure071D ENDP
-
- Procedure071E PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH BX
- PUSH ES
- PUSH CX
- MOV CX, 1000H
- XCHG CX, WORD PTR D00B0H
- PUSH CX
- PUSH AX
- CALL NEAR PTR Procedure0868
- POP BX
- POP WORD PTR D00B0H
- POP CX
- MOV DX, DS
- OR AX, AX
- JZ L0740H
- POP ES
- POP BX
- JMP SHORT L0745H
- L0740H: MOV AX, CX
- JMP NEAR PTR L0683H
- L0745H: MOV SP, BP
- POP BP
- RET
- Procedure071E ENDP
-
-
- Procedure0749 PROC NEAR
- L0749H DB 0000H
- PUSH CX
- PUSH DI
- TEST BYTE PTR [BX+2], 1
- JZ L07B5H
- CALL NEAR PTR Procedure083C
- MOV DI, SI
- MOV AX, WORD PTR [SI]
- TEST AL, 1
- JZ L0760H
- SUB CX, AX
- DEC CX
- L0760H: INC CX
- INC CX
- MOV SI, WORD PTR [BX+4]
- OR SI, SI
- JZ L07B5H
- ADD CX, SI
- JAE L0776H
- XOR AX, AX
- MOV DX, 0FFF0H
- JCXZ L07A4H
- JMP SHORT L07B5H
- L0776H: PUSH SS
- POP ES
- MOV AX, WORD PTR D00B0H
- CMP AX, 1000H
- JZ L0797H
- MOV DX, 8000H
- L0784H: CMP DX, AX
- JB L078EH
- SHR DX, 1
- JNZ L0784H
- JMP SHORT L07B0H
- L078EH: CMP DX, 8
- JB L07B0H
- SHL DX, 1
- MOV AX, DX
- L0797H: DEC AX
- MOV DX, AX
- ADD AX, CX
- JAE L07A0H
- XOR AX, AX
- L07A0H: NOT DX
- AND AX, DX
- L07A4H: PUSH DX
- CALL NEAR PTR Procedure07D6
- POP DX
- JAE L07B8H
- CMP DX, -16
- JZ L07B5H
- L07B0H: MOV AX, 0010H
- JMP SHORT L0797H
- L07B5H: STC
- JMP SHORT L07D3H
- L07B8H: MOV DX, AX
- SUB DX, WORD PTR ES:[BX+4]
- MOV WORD PTR [BX+4], AX
- MOV WORD PTR [BX+10], DI
- MOV SI, WORD PTR [BX+12]
- DEC DX
- MOV WORD PTR [SI], DX
- INC DX
- ADD SI, DX
- MOV WORD PTR [SI], 0FFFEH
- MOV WORD PTR [BX+12], SI
- L07D3H: POP DI
- POP CX
- RET
- Procedure0749 ENDP
-
-
- Procedure07D6 PROC NEAR
- MOV DX, AX
- TEST BYTE PTR [BX+2], 4
- JZ L07E0H
- JMP SHORT L0831H
- L07E0H: PUSH DX
- PUSH CX
- PUSH BX
- MOV SI, WORD PTR [BX+6]
- MOV BX, WORD PTR CS:L01ACH
- XOR CX, CX
- OR DX, DX
- JNZ L07F8H
- TEST BX, 0010H
- JNZ L0837H
- INC CX
- L07F8H: MOV AX, 0022H
- TEST BX, 0001H
- JNZ L0804H
- MOV AX, 0020H
- L0804H: PUSH SI
- PUSH CX
- PUSH DX
- PUSH AX
- CALL FAR PTR GlobalRealloc
- OR AX, AX
- JZ L0837H
- CMP AX, SI
- JNZ L0831H
- PUSH SI
- CALL FAR PTR GlobalSize
- OR DX, AX
- JZ L0831H
- POP BX
- POP CX
- POP DX
- MOV AX, DX
- TEST BYTE PTR [BX+2], 4
- JZ L082EH
- DEC DX
- MOV WORD PTR [BX-2], DX
- L082EH: CLC
- JMP SHORT L083BH
- L0831H: MOV AX, 0012H
- JMP NEAR PTR L0683H
- L0837H: POP BX
- POP CX
- POP DX
- STC
- L083BH: RET
- Procedure07D6 ENDP
-
-
- Procedure083C PROC NEAR
- PUSH DI
- MOV SI, WORD PTR [BX+10]
- CMP SI, WORD PTR [BX+12]
- JNZ L0848H
- MOV SI, WORD PTR [BX+8]
- L0848H: LODSW
- CMP AX, -2
- JZ L0856H
- MOV DI, SI
- AND AL, -2
- ADD SI, AX
- JMP SHORT L0848H
- L0856H: DEC DI
- DEC DI
- MOV SI, DI
- POP DI
- RET
- Procedure083C ENDP
-
-
- Procedure085C PROC NEAR
- PUSH BP
- MOV BP, SP
- POP BP
- RET
- Procedure085C ENDP
-
-
- Procedure0861 PROC NEAR
- MOV AX, 0014H
- JMP NEAR PTR L0683H
- L0867H DB 0000H
- Procedure0861 ENDP
-
- Procedure0868 PROC NEAR
- PUSH BP
- MOV BP, SP
- SUB SP, 4
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR LockSegment
- MOV AX, 0020H
- PUSH AX
- CMP WORD PTR [BP+4], 0
- JZ L0886H
- MOV AX, WORD PTR [BP+4]
- JMP SHORT L0889H
- L0886H: MOV AX, 0001H
- L0889H: PUSH AX
- CALL FAR PTR LocalAlloc
- MOV WORD PTR [BP-2], AX
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR UnlockSegment
- MOV AX, WORD PTR [BP-2]
- MOV SP, BP
- POP BP
- RET
- Procedure0868 ENDP
-
-
- Procedure08A2 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR [BP+4]
- CALL FAR PTR LocalFree
- MOV SP, BP
- POP BP
- RET
- Procedure08A2 ENDP
-
-
- Procedure08B1 PROC NEAR
- NOP
- PUSH BP
- MOV BP, SP
- SUB SP, 4
- CMP WORD PTR [BP+4], 0
- JNZ L08CAH
- PUSH WORD PTR [BP+6]
- CALL NEAR PTR Procedure0868
- ADD SP, 2
- JMP SHORT L08FEH
- NOP
- L08CAH: MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR LockSegment
- PUSH WORD PTR [BP+4]
- CMP WORD PTR [BP+6], 0
- JZ L08E2H
- MOV AX, WORD PTR [BP+6]
- JMP SHORT L08E5H
- NOP
- L08E2H: MOV AX, 0001H
- L08E5H: PUSH AX
- MOV AX, 0062H
- PUSH AX
- CALL FAR PTR LocalRealloc
- MOV WORD PTR [BP-2], AX
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR UnlockSegment
- MOV AX, WORD PTR [BP-2]
- L08FEH: MOV SP, BP
- POP BP
- RET
- Procedure08B1 ENDP
-
-
- Procedure0902 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR [BP+4]
- CALL FAR PTR LocalSize
- MOV SP, BP
- POP BP
- RET
- Procedure0902 ENDP
-
-
- Procedure0911 PROC NEAR
- NOP
- Procedure0911 ENDP
-
- END L01B4H